<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

 <head>

  <title>CSS Test: width of CSS table in border-collapse separate model</title>

  <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
  <link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#separated-borders" title="17.6.1 The separated borders model" />
  <link rel="match" href="../reference/ref-filled-green-100px-square.xht" />

  <meta content="" name="flags" />
  <meta content="The width of a CSS table is the distance from the left inner padding edge to the right inner padding edge (including the table border spacing but excluding table padding and table borders)." name="assert" />

  <style type="text/css"><![CDATA[
  div#overlapped-red
  {
  background-color: red;
  height: 100px;
  position: absolute;
  width: 100px;
  z-index: -1;
  }

  div#overlapping-green-table
  {
  background-color: green;
  border: green solid 10px;
  border-collapse: separate;
  border-spacing: 0px 5px;
  color: green;
  display: table;
  font: 20px/1 serif;
  padding-bottom: 25px;
  table-layout: fixed;
  width: 80px;
  /*
  The width of a CSS table is given by the greater of the value of
  the 'width' property as set for the CSS table and the sum of the
  columns width plus border spacing:

  max(set width, sum of columns width plus border spacing).

  The width (as set) of a CSS table is given by its content-box, not
  by its border-box.

  In this testcase, the content-box must be 100px by 100px and all
  filled with green color.
  In this testcase, the border-box must be 200px by 200px and all
  filled with green color.

  The set width (100px) is larger than sum of columns width plus
  border spacing

    0px  : left-most border-spacing
 +
   20px  : div#td's width
 +
    0px  : middle border-spacing between 1st and 2nd cell
 +
   20px  : div#td's width
 +
    0px  : right-most border-spacing
  =====
   40px  : sum of columns width plus border spacing


    80px : set width of table
  -
    40px : sum of columns plus border spacing
  ======
    40px : the extra (exceeding) 40px width will be distributed over
   the columns, therefore given to both cells of the table.
  */
  }

  div.tr {display: table-row;}

  div.td {display: table-cell;}
  ]]></style>

 </head>

 <body>

  <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>

  <div id="overlapped-red"></div>

  <div id="overlapping-green-table">
     <div class="tr">
       <div class="td">1</div><div class="td">2</div>
     </div>
     <div class="tr">
       <div class="td">3</div><div class="td">4</div>
     </div>
  </div>

 </body>
</html>